package bszt.huawei;

import java.util.*;

public class Code02 {

    /**
     * 给定一个整数数组nums，同时给定一个整数interval
     * 指定数组nums中的某个元素作为起点，然后以interval为间隔递增，如果递增的数（包含起点）等于nums中的元素，则将数组nums中对应的元素消除，返回消除元素最多的起点元素
     * 如果消除的元素同样多，则返回最小的起点元素
     * <p></p>
     * 输入格式：
     * 第一行输入整数数组的长度n
     * 第二行输入长度为n的整数数组nums
     * 第三行输入整数interval
     * <p></p>
     * 输出格式：
     * 起点元素的最小值
     */

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        int interval = sc.nextInt();

        Map<Integer, Integer> map = new HashMap<>();
        for (int i : arr) {
            int r = i % interval;
            map.put(r, map.getOrDefault(r, 0) + 1);
        }
        List<Map.Entry<Integer, Integer>> list = new ArrayList<>(map.entrySet());
        list = list.stream().sorted((o1, o2) -> o2.getValue() - o1.getValue()).toList();
        int target = list.get(0).getKey();
        int res = Integer.MAX_VALUE;
        for (int i : arr) {
            if (i % interval == target) {
                res = Math.min(res, i);
            }
        }
        System.out.println(res);
    }
}
